home *** CD-ROM | disk | FTP | other *** search
- ; callbacks.a
- ; Glue to call XPR callback functions in comm program from inside XPR library.
- ; This protects our registers from potential bugs in the comm program
- ; which might change them in unexpected ways. The prototypes in xprzmodem.h
- ; put all arguments into the registers required by the XPR spec, so we don't
- ; have to move anything around here.
-
- INCLUDE "exec/types.i"
-
- ; Entry points
- XDEF _xpr_fopen
- XDEF _xpr_fclose
- XDEF _xpr_fread
- XDEF _xpr_fwrite
- XDEF _xpr_sread
- XDEF _xpr_swrite
- XDEF _xpr_sflush
- XDEF _xpr_update
- XDEF _xpr_chkabort
- XDEF _xpr_chkmisc
- XDEF _xpr_gets
- XDEF _xpr_setserial
- XDEF _xpr_ffirst
- XDEF _xpr_fnext
- XDEF _xpr_finfo
- XDEF _xpr_fseek
- XDEF _xpr_options
- XDEF _xpr_unlink
- XDEF _xpr_squery
- XDEF _xpr_getptr
-
- ; XPR interface structure
- STRUCTURE XPR_IO,0
- APTR XPR_FILENAME
- APTR XPR_FOPEN
- APTR XPR_FCLOSE
- APTR XPR_FREAD
- APTR XPR_FWRITE
- APTR XPR_SREAD
- APTR XPR_SWRITE
- APTR XPR_SFLUSH
- APTR XPR_UPDATE
- APTR XPR_CHKABORT
- APTR XPR_CHKMISC
- APTR XPR_GETS
- APTR XPR_SETSERIAL
- APTR XPR_FFIRST
- APTR XPR_FNEXT
- APTR XPR_FINFO
- APTR XPR_FSEEK
- LONG XPR_EXTENSION
- APTR XPR_DATA
- APTR XPR_OPTIONS
- APTR XPR_UNLINK
- APTR XPR_SQUERY
- APTR XPR_GETPTR
- LABEL XPR_IO_SIZEOF
-
- SECTION text,code
-
- _xpr_fopen:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_FOPEN(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_fclose:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_FCLOSE(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_fread:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_FREAD(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_fwrite:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_FWRITE(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_sread:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_SREAD(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_swrite:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_SWRITE(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_sflush:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_SFLUSH(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_update:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_UPDATE(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_chkabort:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_CHKABORT(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_chkmisc:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_CHKMISC(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_gets:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_GETS(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_setserial:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_SETSERIAL(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_ffirst:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_FFIRST(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_fnext:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_FNEXT(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_finfo:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_FINFO(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_fseek:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_FSEEK(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_options:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_OPTIONS(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_unlink:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_UNLINK(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_squery:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_SQUERY(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- _xpr_getptr:
- movem.l d2-d7/a2-a6,-(sp)
- movea.l XPR_GETPTR(a3),a6
- jsr (a6)
- movem.l (sp)+,d2-d7/a2-a6
- rts
-
- END
-